const path = require('path');
module.exports = {
  /* 部署生产环境和开发环境下的URL：可对当前环境进行区分，baseUrl 从 Vue CLI 3.3 起已弃用，要使用publicPath */
  publicPath: process.env.NODE_ENV === "production" ? "/dz-im/front/user/" : "/",
  /* 输出文件目录：在npm run build时，生成文件的目录名称 */
  // outputDir: process.env.VUE_APP_FLAG,
  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  assetsDir: "assets",
  /* 是否在构建生产包时生成 sourceMap 文件，false将提高构建速度 */
  productionSourceMap: false,
  /* 默认情况下，生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存，你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  filenameHashing: false,
  /* 代码保存时进行eslint检测 */
  lintOnSave: true,

  chainWebpack: config => {
    const title = '客服咨询'
    config
    .plugin('html')
    .tap(args => {
      args[0].title= title
      return args
    })
    config.plugin('define')
    .tap(args => {
      args[0]['process.env'].REASE_ENV = JSON.stringify(process.env.REASE_ENV);
      return args;
    });
    const oneOfsMap = config.module.rule("scss").oneOfs.store;
    oneOfsMap.forEach(item => {
      item
        .use("sass-resources-loader")
        .loader("sass-resources-loader")
        .options({
          // 全局变量资源路径
          resources: path.resolve(__dirname,'./src/assets/css/variables.scss')
          // 也可以选择全局变量路径数组, 如果你有多个文件需要成为全局,就可以采用这种方法
          // resources: ['./path/to/vars.scss', './path/to/mixins.scss']
          // 或者你可以将多个scss文件@import到一个main.scss用第一种方法，都是可以的
        })
    });
   const fonts =  config.module.rule("fonts")
   fonts
   .test('/\.(ttf|woff2|eot|svg|woff)$/')
   .use('url-loader')
   .loader('url-loader')
   .options()
  },
  /* webpack-dev-server 相关配置 */
  devServer: {
    /* 自动打开浏览器 */
    open: false,
    /* 设置为0.0.0.0则所有的地址均能访问 */
    host: "0.0.0.0",
    port: 80,
    https: false,
    hotOnly: false,
    /* 使用代理 */
    proxy: {
      '/dz-im': {
        /* 目标代理服务器地址 */
        target: "https://testmall.dgzq.com.cn",
        /* 允许跨域 */
        changeOrigin: true
      }
    }
  }
};
